package com.mazaiting.generator.service;

import com.mazaiting.common.core.ex.exceptions.BusinessException;
import com.mazaiting.generator.domain.query.DownloadQuery;

import java.io.IOException;
import java.util.zip.ZipOutputStream;

/**
 * 代码生成
 *
 * @author 阿沐 babamu@126.com
 */
public interface IGeneratorService {

    /**
     * 下载代码
     * @param tableId 表 ID
     * @param zos zip输出流
     */
    void downloadCode(Long tableId, ZipOutputStream zos) throws BusinessException, IOException;

    /**
     * 根据下载选项下载文件
     *
     * @param downloadQuery 下载查询选项
     * @param dir 生成后的文件夹
     * @return 下载的字节数据
     */
    byte[] download(DownloadQuery downloadQuery, String dir) throws Exception;
}
